package com.msdp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.msdp.dto.LoginFormDTO;
import com.msdp.dto.Result;
import com.msdp.entity.User;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 虎哥
 * @since 2021-12-22
 */
public interface IUserService extends IService<User> {

    /**
     * 发送手机验证码
     * @param phone
     * @param session
     */
    Result sendPhoneCode(String phone, HttpSession session);

    /**
     * 发送邮箱验证码
     * @param email
     * @param session
     */
    Result sendEmailCode(String email, HttpSession session);

    /**
     * 用户登录注册功能
     * @param loginForm
     * @param session
     * @return
     */
    Result login(LoginFormDTO loginForm, HttpSession session);

    /**
     * 登出功能
     * @return
     */
    Result logout();
    /**
     * 根据id查询用户信息
     * @param userId
     * @return
     */
    Result getUserById(Long userId);
    /**
     * 用户签到
     * @return
     */
    Result sign();

    /**
     * 统计用户连续签到天数
     * @return
     */
    Result signCount();
    /**
     * 用户是否签到
     * @return
     */
    Result isSign();
    /**
     * 根据id批量查询用户
     * @return
     */
    List<User> getUsersById();
}
